﻿using Models;
using Models.DTO;
using System;
using System.Collections.Generic;
using System.Text;

namespace IBLL
{
    /// <summary>
    /// 用户余额表接口
    /// </summary>
    public interface IUserBalanceInfoBLL
    {

        /// <summary>
        ///  获取用户余额列表
        /// </summary>
        /// <param name="page">第几页</param>
        /// <param name="limit">第几条</param>
        /// <param name="userName">用户余额模糊查询条件</param>
        /// <param name="count">数据总数</param>
        /// <returns></returns>
        List<GetUserBalanceInfosDTO> GetUserBalanceInfo(int page, int limit, string userId, string account, string userName, out int count);
        /// <summary>
        ///  获取余额记录列表的方法
        /// </summary>
        /// <param name="page">第几页</param>
        /// <param name="limit">第几条</param>
        /// <param name="userName">用户余额模糊查询条件</param>
        /// <param name="count">数据总数</param>
        /// <returns></returns>
        List<GetBalanceRecordDTO> GetBalanceRecordInfo(int page, int limit,string id, out int count);
        /// <summary>
        ///  获取用户余额列表
        /// </summary>
        /// <param name="page">第几页</param>
        /// <param name="limit">第几条</param>
        /// <param name="userName">用户余额模糊查询条件</param>
        /// <param name="count">数据总数</param>
        /// <returns></returns>
        List<GetUserBalanceInfosDTO> GetUserBalanceInfos(int page, int limit, string userId, string account, string userName, out int count);
        /// <summary>
        ///  获取用户余额列表
        /// </summary>
        /// <param name="page">第几页</param>
        /// <param name="limit">第几条</param>
        /// <param name="userName">用户余额模糊查询条件</param>
        /// <param name="count">数据总数</param>
        /// <returns></returns>
        List<GetUserBalanceInfosDTO> GetUserBalances(string id, string userId, string account, string userName, out int count);
        /// <summary>
        /// 根据id获取用户余额详情
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        UserBalanceInfo GetUserBalanceInfoById(string id);
        /// <summary>
        /// 新增用户余额的方法
        /// </summary>
        /// <param name="userBalanceInfo"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        bool CreateUserBalanceInfo(UserBalanceInfo userBalanceInfo, out string msg);

        /// <summary>
        /// 修改用户余额的方法
        /// </summary>
        /// <param name="userBalanceInfo"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        bool UpdateUserBalanceInfo(UserBalanceInfo userBalanceInfo, out string msg);

        /// <summary>
        /// 修改用户余额的方法
        /// </summary>
        /// <param name="userBalanceInfo"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        bool UpdateUserBalance(UserBalanceInfo userBalanceInfo,int balance, out string msg);
        /// <summary>
        /// 返回父级部门和领导信息下拉列表数据
        /// </summary>
        /// <returns></returns>
        object GetSelectOptions();

       

    }
}
